

/**
 *  发送GET异步请求
 *  @param {string}       url             请求地址
 *  @param {string}       params          请求参数
 *  @param {function}     callback        回调参数
 *  @param {object}       headers         请求头
 *  @param {string}       dataType        返回的数据类型
*/



function get(url, params, callback,headers = {}, dataType) {

    // 1、创建一个xhr对象
    let xhr = new XMLHttpRequest

    // 2、监控请求状态
    xhr.onreadystatechange = () => {
        //判断拿到后端数据
        if (xhr.readyState === 4) {
            // 判断拿到数据状态
            if (xhr.status === 200) {
                // 获取数据
                let res = xhr.responseText
                switch (dataType) {
                    case 'JSON':
                        res = JSON.parse(res)
                        break;
                    default:
                        break;
                }
                // 不同逻辑处理
                callback(res)
            } else {
                console.log('有瑕疵', xhr.status);
            }
        }
    }

    // 3、请求地址、请求方式
    xhr.open('get', `${url}?${params}`)

    for (let key in headers) {
        xhr.setRequestHeader(key, headers[key])
    }

    // 4、发送请求
    xhr.send(null)
}






// /**
//  *  发送POST异步请求
//  *  @param {string}       url             请求地址
//  *  @param {string}       params          请求参数
//  *  @param {function}     callback        回调参数
//  *  @param {object}       headers         请求头
//  *  @param {string}       dataType        返回的数据类型
// */



// function post(url, params, callback, headers = {}, dataType = 'json') {

//     //1、创建xhr对象
//     let xhr = new XMLHttpRequest

//     // 2、监控请求状态
//     xhr.onreadystatechange = () => {
//         // 判断拿到的后端数据和数据状态
//         if (xhr.readyState === 4 && xhr.status === 200) {
//             let res = xhr.responseText
//             switch (dataType) {
//                 case 'json':
//                     res = JSON.parse(res)
//                     break;
//                 default:
//                     break;
//             }
//             // 不同逻辑处理
//             callback(res)
//         }
//     }

//     // 3、设置请求方式、请求地址
//     xhr.open('post', url)
//     xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
//     for (let key in headers) {
//         xhr.setRequestHeader(key, headers[key])
//     }

//     // 4、发送请求
//     xhr.send(params)
// }